A collaborative manager is a program that facilitates communication between multiple application programs ("programs") stored on one or more computers. The programs may reside in computers that are remote from each other and differ in hardware construction and operating system software. The computers can be connected via a network, such as the Internet or a local area network. Consequently, these programs, which may have radically different input and output requirements, must share information through the manager to accomplish a specified task. The manager also coordinates activities of the collaborating programs. For example, a stock market trading program, running on a particular computer platform, may collaborate with a database program, running on a different computer platform, to obtain and then store the name and value of a stock on a selected day. After locating the stock name and daily value via a network (e.g., the Internet), the stock market trading program generates an output with the latter information and transmits the output to the collaboration manager. The manager then broadcasts the information to all computers having programs which are collaborating by means of the manager. These computers may be terminals that are remote from a server on which the manager runs. Once the output from the manager is received by the database program, it is converted into a form which is usable with the database program, and then stored in a database. The manager in this example therefore provides the mechanism for receiving output from a stock market trading program in one format, and directing that output to the database program.
Programs utilized with such collaborative systems must be configured so that each program can recognize and process the output from the other programs. Specifically, each program must be preconfigured with a converter that converts output from any of the other programs into an input which the program can use. In the above example, the database program must include a converter that can accept output data from the stock market trading program in a particular configuration and change that configuration so that it corresponds with the data already stored in the database.
Problems arise, however, when a new program is added to the system after the converter in the existing programs are initially configured. In particular, the system and the existing programs typically will malfunction (i.e., crash) because none of the existing programs includes a converter with a knowledge of the output of such new program. Continuing with the above example, the addition of a new program that determines the stock name and the closing price of the stock for the preceding five days can cause the database program to crash since the database program has the capability of converting the stock name and daily price only. Absent a converter with a knowledge of the new program output, the database program cannot convert and utilize the new output. This problem may be solved by reconfiguring the converters for each program to recognize output from the new program. Reconfiguring the converters, however, typically is not a trivial task. It can be time consuming, inconvenient, and costly, especially when there is a large number of programs utilizing the collaborative system.
Accordingly, it would be desirable to have a collaborative system that facilitates the addition of new programs to the system without requiring that each of the existing programs be reconfigured. It also would be desirable to have a system that does not require a converter in each of the programs.